package com.zhiche.lisa.bms.pojo.vo.fee;

import com.fasterxml.jackson.annotation.JsonFormat;

import java.math.BigDecimal;
import java.util.Date;

/**
 * @Author: liuanshun
 * @Description:
 * @Date: Create in 14:35 2018/11/15
 */
public class FeePayableVO {

    /**
     * propertyConvent
     */
    private String statusName;
    private String loadStatusName;
    private String contractTypeName;

    private String canProvisional;

    private String vcorderno;


    /**
     * BaseProperty
     */
    private Long id;
    /**
     * 指令号
     */
    private String orderCode;
    /**
     * 订单号明细ID
     */
    private Long orderDtlId;
    /**
     * 费用类型ID
     */
    private Long typeId;
    /**
     * 费用名称( 保留同步过来的原始费用 )
     */
    private String typeName;
    /**
     * 车型编码
     */
    private String vehicleTypeCode;
    /**
     * OTM运单号
     */
    private String waybillId;
    /**
     * OTM运单号明细
     */
    private String waybillDtlId;
    /**
     * 客户运单号
     */
    private String cusWaybill;
    /**
     * 客户订单号
     */
    private String cusOrderNo;
    /**
     * 车牌号
     */
    private String vehicleTypeName;
    /**
     * 车架
     */
    private String vin;
    /**
     * 起运地
     */
    private String startAddr;
    /**
     * 起运省
     */
    private String startProvince;
    /**
     * 起运市
     */
    private String startCity;
    /**
     * 起运区
     */
    private String startCounty;
    /**
     * 起运名称
     */
    private String startName;
    /**
     * 目的省
     */
    private String endProvince;
    /**
     * 目的市
     */
    private String endCity;
    /**
     * 目的区
     */
    private String endCounty;
    /**
     * 目的地
     */
    private String endAddr;
    /**
     * 目的名称
     */
    private String endName;
    /**
     * 合同类型
     */
    private String contractType;
    /**
     * 合同编码
     */
    private String contractCode;
    /**
     * 报价单id
     */
    private Long quoteId;
    /**
     * 付款方ID
     */
    private Long payerId;
    /**
     * 付款方名称
     */
    private String payerName;
    /**
     * 分供方ID
     */
    private Long payeeId;
    /**
     * 分供方名称
     */
    private String payeeName;
    /**
     * 主体业务
     */
    private String ciamsId;
    /**
     * 司机id
     */
    private Long driverId;
    /**
     * 司机名称
     */
    private String driverName;
    /**
     * 车队id
     */
    private Long fleetId;
    /**
     * 车队名称
     */
    private String fleetName;
    /**
     * 预估单价
     */
    private BigDecimal estPrice;
    /**
     * 单价
     */
    private BigDecimal actualPrice;
    /**
     * 公里数
     */
    private BigDecimal kilometre;
    /**
     * 数量
     */
    private Integer num;
    /**
     * 预估金额
     */
    private BigDecimal estAmt;
    /**
     * 结算金额( 总金额 )
     */
    private BigDecimal actualAmt;
    /**
     * 尾款油卡金额
     */
    private BigDecimal oilBaPay;
    /**
     * 尾款现金金额
     */
    private BigDecimal cashBaPay;
    /**
     * 扣款金额
     */
    private BigDecimal deduct;
    /**
     * 运输方式 id
     */
    private Long transTypeId;
    /**
     * 运输方式名称
     */
    private String transTypeName;
    /**
     * 租户ID
     */
    private Long tenantId;
    /**
     * 发运时间 ( 原下单时间 )
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date orderDate;
    /**
     * 回单时间
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date receiptDate;
    /**
     * 装车单状态：10-已发运、20-已回单、30-已运抵
     */
    private String loadStatus;
    /**
     * 状态：0、新增 1、已出账单 2 、取消
     */
    private Integer status;

    /**
     * OTM标准价id
     */
    private Long staPriceId;
    /**
     * 修改时间
     */
    private Date gmtModify;
    /**
     * 创建时间
     */
    private Date gmtCreate;
    /**
     * 其他费用
     */
    private BigDecimal elsePrice;
    /**
     * 创建人
     */
    private Long creator;
    /**
     * 拥有人
     */
    private Long proprietor;
    /**
     * 0\系统 1\Excel
     */
    private Integer sourceSys;

    /**
     * 第一桶油费用
     */
    private BigDecimal firstOilTotal;
    /**
     * 第一桶油量
     */
    private BigDecimal firstOilCapacity;
    /**
     * 当前油价
     */
    private BigDecimal currentOilPrice;

    /**
     * 人送其他费用金额
     */
    private BigDecimal sdOtherExpensiseAmt;

    /**
     * 支付申请号
     */
    private String payApplyCode;


    public void setContractType(String contractType) {
        this.contractType = contractType;
        if ("0".equals(contractType)) {
            this.contractTypeName = "正式";
        } else if ("1".equals(contractType)) {
            this.contractTypeName = "临时";
        }
    }

    public void setLoadStatus(String loadStatus) {
        this.loadStatus = loadStatus;
        if ("10".equals(loadStatus)) {
            this.loadStatusName = "已发运";
        } else if ("20".equals(loadStatus)) {
            this.loadStatusName = "已回单";
        } else if ("30".equals(loadStatus)) {
            this.loadStatusName = "已运抵";
        }
    }

    public void setStatus(Integer status) {
        this.status = status;
        if (new Integer(0).equals(status)) {
            this.statusName = "新增";
        } else if (new Integer(1).equals(status)) {
            this.statusName = "已出账单";
        }
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getOrderCode() {
        return orderCode;
    }

    public void setOrderCode(String orderCode) {
        this.orderCode = orderCode;
    }

    public Long getOrderDtlId() {
        return orderDtlId;
    }

    public void setOrderDtlId(Long orderDtlId) {
        this.orderDtlId = orderDtlId;
    }

    public Long getTypeId() {
        return typeId;
    }

    public void setTypeId(Long typeId) {
        this.typeId = typeId;
    }

    public String getTypeName() {
        return typeName;
    }

    public void setTypeName(String typeName) {
        this.typeName = typeName;
    }

    public String getVehicleTypeCode() {
        return vehicleTypeCode;
    }

    public void setVehicleTypeCode(String vehicleTypeCode) {
        this.vehicleTypeCode = vehicleTypeCode;
    }

    public String getWaybillId() {
        return waybillId;
    }

    public void setWaybillId(String waybillId) {
        this.waybillId = waybillId;
    }

    public String getWaybillDtlId() {
        return waybillDtlId;
    }

    public void setWaybillDtlId(String waybillDtlId) {
        this.waybillDtlId = waybillDtlId;
    }

    public String getCusWaybill() {
        return cusWaybill;
    }

    public void setCusWaybill(String cusWaybill) {
        this.cusWaybill = cusWaybill;
    }

    public String getCusOrderNo() {
        return cusOrderNo;
    }

    public void setCusOrderNo(String cusOrderNo) {
        this.cusOrderNo = cusOrderNo;
    }

    public String getVehicleTypeName() {
        return vehicleTypeName;
    }

    public void setVehicleTypeName(String vehicleTypeName) {
        this.vehicleTypeName = vehicleTypeName;
    }

    public String getVin() {
        return vin;
    }

    public void setVin(String vin) {
        this.vin = vin;
    }

    public String getStartAddr() {
        return startAddr;
    }

    public void setStartAddr(String startAddr) {
        this.startAddr = startAddr;
    }

    public String getStartProvince() {
        return startProvince;
    }

    public void setStartProvince(String startProvince) {
        this.startProvince = startProvince;
    }

    public String getStartCity() {
        return startCity;
    }

    public void setStartCity(String startCity) {
        this.startCity = startCity;
    }

    public String getStartCounty() {
        return startCounty;
    }

    public void setStartCounty(String startCounty) {
        this.startCounty = startCounty;
    }

    public String getStartName() {
        return startName;
    }

    public void setStartName(String startName) {
        this.startName = startName;
    }

    public String getEndProvince() {
        return endProvince;
    }

    public void setEndProvince(String endProvince) {
        this.endProvince = endProvince;
    }

    public String getEndCity() {
        return endCity;
    }

    public void setEndCity(String endCity) {
        this.endCity = endCity;
    }

    public String getEndCounty() {
        return endCounty;
    }

    public void setEndCounty(String endCounty) {
        this.endCounty = endCounty;
    }

    public String getEndAddr() {
        return endAddr;
    }

    public void setEndAddr(String endAddr) {
        this.endAddr = endAddr;
    }

    public String getEndName() {
        return endName;
    }

    public void setEndName(String endName) {
        this.endName = endName;
    }

    public String getContractType() {
        return contractType;
    }

    public String getContractCode() {
        return contractCode;
    }

    public void setContractCode(String contractCode) {
        this.contractCode = contractCode;
    }

    public Long getQuoteId() {
        return quoteId;
    }

    public void setQuoteId(Long quoteId) {
        this.quoteId = quoteId;
    }

    public Long getPayerId() {
        return payerId;
    }

    public void setPayerId(Long payerId) {
        this.payerId = payerId;
    }

    public String getPayerName() {
        return payerName;
    }

    public void setPayerName(String payerName) {
        this.payerName = payerName;
    }

    public Long getPayeeId() {
        return payeeId;
    }

    public void setPayeeId(Long payeeId) {
        this.payeeId = payeeId;
    }

    public String getPayeeName() {
        return payeeName;
    }

    public void setPayeeName(String payeeName) {
        this.payeeName = payeeName;
    }

    public Long getDriverId() {
        return driverId;
    }

    public void setDriverId(Long driverId) {
        this.driverId = driverId;
    }

    public String getDriverName() {
        return driverName;
    }

    public void setDriverName(String driverName) {
        this.driverName = driverName;
    }

    public Long getFleetId() {
        return fleetId;
    }

    public void setFleetId(Long fleetId) {
        this.fleetId = fleetId;
    }

    public String getFleetName() {
        return fleetName;
    }

    public void setFleetName(String fleetName) {
        this.fleetName = fleetName;
    }

    public BigDecimal getEstPrice() {
        return estPrice;
    }

    public void setEstPrice(BigDecimal estPrice) {
        this.estPrice = estPrice;
    }

    public BigDecimal getActualPrice() {
        return actualPrice;
    }

    public void setActualPrice(BigDecimal actualPrice) {
        this.actualPrice = actualPrice;
    }

    public BigDecimal getKilometre() {
        return kilometre;
    }

    public void setKilometre(BigDecimal kilometre) {
        this.kilometre = kilometre;
    }

    public Integer getNum() {
        return num;
    }

    public void setNum(Integer num) {
        this.num = num;
    }

    public BigDecimal getEstAmt() {
        return estAmt;
    }

    public void setEstAmt(BigDecimal estAmt) {
        this.estAmt = estAmt;
    }

    public BigDecimal getActualAmt() {
        return actualAmt;
    }

    public void setActualAmt(BigDecimal actualAmt) {
        this.actualAmt = actualAmt;
    }

    public BigDecimal getOilBaPay() {
        return oilBaPay;
    }

    public void setOilBaPay(BigDecimal oilBaPay) {
        this.oilBaPay = oilBaPay;
    }

    public BigDecimal getCashBaPay() {
        return cashBaPay;
    }

    public void setCashBaPay(BigDecimal cashBaPay) {
        this.cashBaPay = cashBaPay;
    }

    public BigDecimal getDeduct() {
        return deduct;
    }

    public void setDeduct(BigDecimal deduct) {
        this.deduct = deduct;
    }

    public Long getTransTypeId() {
        return transTypeId;
    }

    public void setTransTypeId(Long transTypeId) {
        this.transTypeId = transTypeId;
    }

    public String getTransTypeName() {
        return transTypeName;
    }

    public void setTransTypeName(String transTypeName) {
        this.transTypeName = transTypeName;
    }

    public Long getTenantId() {
        return tenantId;
    }

    public void setTenantId(Long tenantId) {
        this.tenantId = tenantId;
    }

    public Date getOrderDate() {
        return orderDate;
    }

    public void setOrderDate(Date orderDate) {
        this.orderDate = orderDate;
    }

    public Date getReceiptDate() {
        return receiptDate;
    }

    public void setReceiptDate(Date receiptDate) {
        this.receiptDate = receiptDate;
    }

    public String getLoadStatus() {
        return loadStatus;
    }

    public Integer getStatus() {
        return status;
    }

    public Date getGmtModify() {
        return gmtModify;
    }

    public void setGmtModify(Date gmtModify) {
        this.gmtModify = gmtModify;
    }

    public Date getGmtCreate() {
        return gmtCreate;
    }

    public void setGmtCreate(Date gmtCreate) {
        this.gmtCreate = gmtCreate;
    }

    public Long getCreator() {
        return creator;
    }

    public void setCreator(Long creator) {
        this.creator = creator;
    }

    public Long getProprietor() {
        return proprietor;
    }

    public void setProprietor(Long proprietor) {
        this.proprietor = proprietor;
    }

    public BigDecimal getElsePrice() {
        return elsePrice;
    }

    public void setElsePrice(BigDecimal elsePrice) {
        this.elsePrice = elsePrice;
    }

    public Integer getSourceSys() {
        return sourceSys;
    }

    public void setSourceSys(Integer sourceSys) {
        this.sourceSys = sourceSys;
    }

    public String getCiamsId() {
        return ciamsId;
    }

    public void setCiamsId(String ciamsId) {
        this.ciamsId = ciamsId;
    }

    public String getStatusName() {
        return statusName;
    }

    public void setStatusName(String statusName) {
        this.statusName = statusName;
        if ("新增".equals(statusName)) {
            this.status = 0;
        } else if ("已出账单".equals(status)) {
            this.status = 1;
        }
    }

    public String getCanProvisional() {
        return canProvisional;
    }

    public void setCanProvisional(String canProvisional) {
        this.canProvisional = canProvisional;
    }

    public String getLoadStatusName() {
        return loadStatusName;
    }

    public void setLoadStatusName(String loadStatusName) {
        this.loadStatusName = loadStatusName;
        if ("已发运".equals(loadStatusName)) {
            this.loadStatus = "10";
        } else if ("已回单".equals(loadStatusName)) {
            this.loadStatus = "20";
        } else if ("已运抵".equals(loadStatusName)) {
            this.loadStatus = "30";
        }
    }

    public String getContractTypeName() {
        return contractTypeName;
    }

    public void setContractTypeName(String contractTypeName) {
        this.contractTypeName = contractTypeName;
        if ("正式".equals(contractTypeName)) {
            this.contractTypeName = "0";
        } else if ("临时".equals(loadStatusName)) {
            this.contractTypeName = "1";
        }
    }

    public String getVcorderno() {
        return vcorderno;
    }

    public void setVcorderno(String vcorderno) {
        this.vcorderno = vcorderno;
    }

    public Long getStaPriceId() {
        return staPriceId;
    }

    public void setStaPriceId(Long staPriceId) {
        this.staPriceId = staPriceId;
    }

    public BigDecimal getFirstOilTotal() {
        return firstOilTotal;
    }

    public void setFirstOilTotal(BigDecimal firstOilTotal) {
        this.firstOilTotal = firstOilTotal;
    }

    public BigDecimal getFirstOilCapacity() {
        return firstOilCapacity;
    }

    public void setFirstOilCapacity(BigDecimal firstOilCapacity) {
        this.firstOilCapacity = firstOilCapacity;
    }

    public BigDecimal getCurrentOilPrice() {
        return currentOilPrice;
    }
    
    public BigDecimal getSdOtherExpensiseAmt() {
        return sdOtherExpensiseAmt;
    }

    public void setSdOtherExpensiseAmt(BigDecimal sdOtherExpensiseAmt) {
        this.sdOtherExpensiseAmt = sdOtherExpensiseAmt;
    }

    public void setCurrentOilPrice(BigDecimal currentOilPrice) {
        this.currentOilPrice = currentOilPrice;
    }


    public String getPayApplyCode() {
        return payApplyCode;
    }

    public void setPayApplyCode(String payApplyCode) {
        this.payApplyCode = payApplyCode;
    }

    @Override
    public String toString() {
        return "FeePayableVO{" +
                "statusName='" + statusName + '\'' +
                ", loadStatusName='" + loadStatusName + '\'' +
                ", contractTypeName='" + contractTypeName + '\'' +
                ", canProvisional='" + canProvisional + '\'' +
                ", vcorderno='" + vcorderno + '\'' +
                ", id=" + id +
                ", orderCode='" + orderCode + '\'' +
                ", orderDtlId=" + orderDtlId +
                ", typeId=" + typeId +
                ", typeName='" + typeName + '\'' +
                ", vehicleTypeCode='" + vehicleTypeCode + '\'' +
                ", waybillId='" + waybillId + '\'' +
                ", waybillDtlId='" + waybillDtlId + '\'' +
                ", cusWaybill='" + cusWaybill + '\'' +
                ", cusOrderNo='" + cusOrderNo + '\'' +
                ", vehicleTypeName='" + vehicleTypeName + '\'' +
                ", vin='" + vin + '\'' +
                ", startAddr='" + startAddr + '\'' +
                ", startProvince='" + startProvince + '\'' +
                ", startCity='" + startCity + '\'' +
                ", startCounty='" + startCounty + '\'' +
                ", startName='" + startName + '\'' +
                ", endProvince='" + endProvince + '\'' +
                ", endCity='" + endCity + '\'' +
                ", endCounty='" + endCounty + '\'' +
                ", endAddr='" + endAddr + '\'' +
                ", endName='" + endName + '\'' +
                ", contractType='" + contractType + '\'' +
                ", contractCode='" + contractCode + '\'' +
                ", quoteId=" + quoteId +
                ", payerId=" + payerId +
                ", payerName='" + payerName + '\'' +
                ", payeeId=" + payeeId +
                ", payeeName='" + payeeName + '\'' +
                ", ciamsId='" + ciamsId + '\'' +
                ", driverId=" + driverId +
                ", driverName='" + driverName + '\'' +
                ", fleetId=" + fleetId +
                ", fleetName='" + fleetName + '\'' +
                ", estPrice=" + estPrice +
                ", actualPrice=" + actualPrice +
                ", kilometre=" + kilometre +
                ", num=" + num +
                ", estAmt=" + estAmt +
                ", actualAmt=" + actualAmt +
                ", oilBaPay=" + oilBaPay +
                ", cashBaPay=" + cashBaPay +
                ", deduct=" + deduct +
                ", transTypeId=" + transTypeId +
                ", transTypeName='" + transTypeName + '\'' +
                ", tenantId=" + tenantId +
                ", orderDate=" + orderDate +
                ", receiptDate=" + receiptDate +
                ", loadStatus='" + loadStatus + '\'' +
                ", status=" + status +
                ", staPriceId=" + staPriceId +
                ", gmtModify=" + gmtModify +
                ", gmtCreate=" + gmtCreate +
                ", elsePrice=" + elsePrice +
                ", creator=" + creator +
                ", proprietor=" + proprietor +
                ", sourceSys=" + sourceSys +
                '}';
    }
}
